home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / pcbck321.zip / PCBCHECK.DOC < prev    next >
Text File  |  1996-02-28  |  35KB  |  706 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                        PCBCheck Advanced Upload Checker
  7.                              v.3.21  Feb 28, 1996
  8.                                     Jim Dahl
  9.  
  10.  
  11.  
  12. ┌────────────────────────────┐
  13. │ 1.  Mission and conception │
  14. └────────────────────────────┘
  15.  
  16. I created PCBCheck (mainly for in-house use) when I was first exposed to
  17. the difficulty in setting up other PCBoard upload checkers.  Creating a
  18. SETUP.CNF file and putting 50 seperate pieces of information on different
  19. lines in certain formats is not a nice way to set up a program!  In fact,
  20. any program other than a BBS utility, would fail miserably if it required
  21. such an intricate setup.  BBS utilities do not need to be so complicated to
  22. setup!
  23.  
  24. Comments are very welcomed and bug reports are PROMPTLY addressed!
  25.  
  26. ┌────────────────────────────┐
  27. │ 2.  Features               │
  28. └────────────────────────────┘
  29.  
  30. As mentioned above, I believe the main feature of the program is its
  31. easy-to-use SETUP program!  I also think PCBCheck has kind of a cool,
  32. modern PCBoard 15.2 look that others lack.  Specific functions are:
  33.  
  34.     *  Up to 10 user-configurable archivers, up to 5 user-configurable
  35.          virus scanners (auto-configuration for McAfee's SCAN and F-PROT)
  36.     *  Easy-to-use SETUP program which dynamically adjusts its menus
  37.          based on your system setup, selected options, installed
  38.          archivers, etc...  No wasted menu space, asks only those questions
  39.          which affect you!  It even sets up your PCBTEST.BAT file for you!
  40.     *  PCBCheck features advanced output which dynamically alters itself 
  41.          based on the type of upload, tests to be performed, etc...  
  42.          A few examples:  When testing a GIF, a slot for resolution appears 
  43.          in the space normally used by the 'testing embedded archives' slot; 
  44.          when PCBCheck replaces the description with the FILE_ID.DIZ the 
  45.          change is reflected on the line of the description displayed on the 
  46.          screen, etc....  There will never be prompts which are irrelevant 
  47.          to the current upload displayed.
  48.     *  Flexible recognition criteria- using the 'allow unrecognized files',
  49.          'allow archives with non-standard extensions', and acceptable
  50.          non-archive extensions list (wildcards allowed) you can tailor
  51.          which uploads will be accepted to your specific needs.
  52.  
  53. General features and abilities include:
  54.  
  55.     - FOSSIL, OS/2 comm. driver, and non-standard comm. port support
  56.     - age checking based on percentage of files newer than specified date
  57.     - scans embedded archives to any depth (as deep as path names allow)
  58.     - FILE_ID.DIZ importing (autocorrects invalid FILE_ID.DIZ descriptions)
  59.     - removes ANSI codes from descriptions
  60.     - virus scanning using your virus scanner
  61.     - GIF integrity scanning
  62.     - convert all recognized archives to single type
  63.     - can handle self-extracting archives
  64.     - recognize archives with non-standard extensions
  65.     - add file to archives
  66.     - remove specified files from archives
  67.     - check for bad 'keywords' in description to reject upload
  68.     - compare upload name to 'trashcan' list for rejection
  69.     - program or external errors noted in PCBCHECK.LOG
  70.     - can send mail to sysop to inform him of program or external errors
  71.     - add newest/oldest file dates and number of files to description
  72.     - add GIF resolution to description
  73.     - notify sysop by mail of uploads which may be virus infected
  74.     - special RAM disk support to speed up operation
  75.     - ability to use different background screens
  76.     - registered version allows sysop to have his BBS name in title bar
  77.  
  78. ┌────────────────────────────┐
  79. │ 3.  Installation           │
  80. └────────────────────────────┘
  81.  
  82. PCBCheck should be installed in it's own directory, preferably close to
  83. the root directory.  DOS places limits on command and parameter lengths, and
  84. PCBCheck can often come dangerously close to those limits while executing
  85. complex archive/dearchive commands!  Putting PCBCheck in a directory
  86. directly off the root directory gives it more room to play with by
  87. shortening the paths to PCBCheck data files.
  88.  
  89. When PCBoard wants an upload checked, it calls PCBTEST.BAT in its home
  90. directory.  SETUP will modify PCBTEST.BAT for you if it detects that
  91. PCBTEST.BAT does not already run PCBCHECK and you tell it that it is
  92. allowed to modify PCBTEST.BAT.  Note that you may need to add a special
  93. parameter yourself.  The command line for PCBCheck reads:
  94.  
  95.   X:\<your-path>\PCBCHECK.EXE %1 %2 %3 port
  96.  
  97. The optional parameter port (which SETUP leaves out by default) allows
  98. you to specify an address for PCBCheck to use for serial output.  The default
  99. (nothing specified) is for PCBCheck to read PCBoard's PCBOARD.SYS to
  100. determine the COM port number, and then the COM port number is converted to
  101. its standard address.  Particularly if you use COM3 or COM4 the address may
  102. not be the default.  Also, you must use the [port] option if you wish to
  103. use a FOSSIL driver in lieu of the normal 8250 communications routines.
  104. Pass '#F' where # is the FOSSIL port, for example, to access COM1 via a
  105. FOSSIL driver you would pass '0F' as the port parameter (without the
  106. quotation marks, of course).  Note that PCBCheck should be able to read 
  107. the FOSSIL port number out of the PCBOARD.DAT, so you only need to pass 
  108. the port parameter in special exceptions.
  109.  
  110. Notice that the suggested PCBTEST.BAT does NOT change directories, rather
  111. calls PCBCheck from the current directory.  That is very important!  The
  112. reason is that PCBCheck looks for system files in that directory (PCBOARD.DAT
  113. and PCBOARD.SYS).  
  114.  
  115. Change directories to the PCBCheck directory you created earlier and run
  116. SETUP.  This document explains the various features of SETUP later.
  117.  
  118. I strongly recommend all PCBCheck users have SHARE installed (most BBS
  119. computers already should).  Note that OS/2 automatically provides file
  120. sharing services.  Also, adding PCBCheck to the path seems to help
  121. some users.
  122.  
  123. ┌────────────────────────────┐
  124. │ 4.  Running PCBCheck       │
  125. └────────────────────────────┘
  126.  
  127. As noted in Installing PCBCheck, SETUP pretty much sets everything up for
  128. PCBCheck to run as the default upload processor for PCBoard.  I will
  129. detail the acceptable parameters and methods of running PCBCheck below for
  130. reference.
  131.  
  132.      PCBCHECK filename [method] [description file] [port]
  133.  
  134. The only required parameter is 'filename'.  If you supply only 'filename',
  135. PCBCheck will behave as if LOCAL were used for method.  'filename' should
  136. be the filename to test (make sure it exists!)  'filename' can contain
  137. wildcards (* or ?) which are interpreted by DOS using standard DOS wildcard
  138. expansion.
  139.  
  140. 'method' can be one of the following:
  141.  
  142.   LOCAL   - PCBCheck will scan the file, but will not attempt to do anything
  143.             with a description or COMM ports.  This mode is used for local
  144.             testing of files (non-PCBoard related mode).
  145.             (user mode)
  146.   OFFLINE - PCBCheck will scan the file and generate a description file,
  147.             then move the file to the upload directory and register it with
  148.             PCBoard (offline uploads)  This mode has basically the same
  149.             effect as uploading a file does, but offline (it checks the file,
  150.             then performs the PCBoard task of moving the file to the upload
  151.             directory and adding the description).  This mode should only be 
  152.             used from the PCBoard directory in which the PCBOARD.DAT and 
  153.             PCBOARD.SYS are generated!
  154.             (user mode)
  155.   UPLOAD  - PCBoard uses this mode to tell PCBCheck to scan the file,
  156.             including description processing and communications (normal
  157.             mode of operation for user or local uploads)
  158.             (PCBoard mode)
  159.   ATTACH  - PCBoard uses this mode to tell PCBCheck that the description
  160.             is unimportant and that the file is not a public upload, rather
  161.             its in a message.  PCBCheck will accept the upload even if it
  162.             is unrecognized.
  163.             (PCBoard mode)
  164.   TEST    - PCBoard uses this mode to tell PCBCheck to test the file, not
  165.             do anything with the description
  166.             (PCboard mode)
  167.  
  168. 'description file' is the location of the description file to be used,
  169. this parameter is automatically passed by PCBoard, and should not be used
  170. for user mode tests.
  171.  
  172. 'port' specifies an optional non-standard address or FOSSIL port for 
  173. communications as described in Installation
  174.  
  175. PCBCheck will return 0 if the file passed, 1 if the file failed.  Note that
  176. PCBCheck also generates the file PCBPASS.TXT if the file passes and the
  177. file PCBFAIL.TXT if the file fails (as required by PCBoard).  
  178.  
  179. ┌────────────────────────────┐
  180. │ 5.  Setup                  │
  181. └────────────────────────────┘
  182.  
  183.   5.0 Menu
  184.  
  185. The menu allows you to jump directly to any of the pages.  Once in the
  186. pages, you can move between them using Page Up and Page Down, or by 
  187. returning to the menu and selecting a different page.
  188.  
  189.   5.1 Archive support
  190.  
  191. The archive support menu and pages allow to specify acceptable archiver
  192. types.  You will need to specify an archiver executable, dearchiver 
  193. executable (can be the same) and an extension associated with the archive
  194. type.
  195.  
  196. You can also add parameters for various archiver operations.  Set the
  197. archive and dearchiver to operate in an unattended mode or suppress
  198. prompts.  Set the appropriate parameters to delete files, extract files,
  199. and add comments where appropriate (the three defaults provide good
  200. examples).  The command line is assembled:
  201.  
  202. <Executable> <commands> filename <parameters>
  203.  
  204. Commands serve the same purpose as parameters, except they are inserted
  205. before the filename instead of after it (some archivers care).
  206.  
  207. The archivers specified must be in the path while PCBCheck is executing for
  208. them to be used.
  209.  
  210.   5.2  Non-archive support
  211.  
  212. The non-archive support screen allows you to enter the extensions of
  213. acceptable non-archives.  You do not need to fill all or any of the fields,
  214. though you cannot specify more than ten acceptable non-archive extensions.
  215.  
  216. Special files which have internal PCBCheck support, such as GIF files, must
  217. still be specified here to clear the detection phase of PCBCheck!  Self-
  218. extracting archives in the form of EXE files are the only exceptions.  They
  219. are considered archives, so if the archiver support is enabled on the
  220. appropriate page and self-extracting support is enabled on the miscellaneous
  221. page, PCBCheck will accept self-extracting archives as EXEs.  If you specify
  222. EXE here, you will be telling PCBCheck to accept all executables.
  223.  
  224. Note that the wildcard '?' can be used in the extensions.  For example,
  225. '0??' would allow any files whose extension begins with 0.  If you want
  226. to allow ALL unrecognized uploads, however, use the accept unrecognized
  227. uploads switch instead of '???', though they should be functionally
  228. equivalent.  Note that the '*' wildcard is not supported because it
  229. would serve no purpose (a single or double question mark could, in all
  230. situations, be substituted).
  231.  
  232.   5.3  Recognition Criteria
  233.  
  234. NON-STANDARD EXTENSIONS:  Setting this switch to 'yes' instructs PCBCheck
  235. to accept archives whose extensions are non-standard (for example, a ZIP
  236. file with an extension JIM.  A ZIP file can never have an extension ARJ,
  237. or other recognized archive extensions).  This allows PCBCheck to perform
  238. more thorough checking on certain files, but at a price.  For uploads which
  239. are truly unrecognized, PCBCheck will still have to check them, thereby
  240. significantly increasing processing time.  Note that the processing time
  241. is a function of the activated archivers, so deactivate archives you won't
  242. use to improve performance.  Note also that if TXT is specified as an
  243. acceptable non-archive extension, a ZIP file with a TXT extension will be
  244. treated as a non-archive upload.
  245.  
  246. ALLOW UNRECOGNIZED UPLOADS:  Setting this switch to 'yes' instructs PCBCheck
  247. to accept uploads which make it through the detection process completely
  248. unrecognized.  Note this switch affects recognition criteria only.  The
  249. upload will still have to pass age inspection, virus checking and any
  250. other specified tests.
  251.  
  252. ALLOW SELF-EXTRACTING ARCHIVES:  This switch determines whether PCBCheck
  253. will attempt to determine if EXE files are really archives.  Note that if
  254. non-standard extension recognition is active, this switch is redundant.
  255. This feature has the same disadvantages as non-standard extension recognition.
  256.  
  257. USE TRASHCAN LIST:  You can maintain a file, TRASHCAN.PCB, which contains a
  258. list of filenames you don't want on your board.  Note that if you're using
  259. PC-DOS, MS-DOS or OS/2, SETUP will attempt to locate your system editor and
  260. allow you to edit TRASHCAN.PCB from within SETUP!  If it successfully locates
  261. your editor, a prompt will appear below this choice instructing you to
  262. 'F2 to edit TRASHCAN.PCB'.  Format instructions for TRASHCAN.PCB are located  
  263. in the sample file.
  264.  
  265.   5.4  Description Editing / Restrictions (2 pages)
  266.  
  267. Most of these switches are self-explanatory.  The first switch allows you
  268. to specify that you want to allow ONLY uploads which contain a FILE_ID.DIZ
  269. or other recognized description file.  The next four switches allow
  270. you to instruct PCBCheck to add the number of files in the archive, the
  271. newest date of a file in the archive, the resolution of a GIF, and/or the
  272. oldest date of a file in the archive to the description.  You may choose
  273. any combination of the above, and only those appropriate to the upload type
  274. will be used.
  275.  
  276. The second page allows you to specify description modifying parameters to                                                 
  277. clean up the descriptions.  With all restrictions turned on, you will
  278. effectively remove almost all non-textual characters, color codes, etc...
  279. PCBCheck can remove ANSI codes (including color codes and keyboard 
  280. reprogramming codes), PCBoard @-codes (including color codes and some of
  281. the more destructive @ codes such as HANGUP), |-color codes (not supported
  282. by PCBoard, but sometimes found in FILE_ID.DIZ files), and ALL high 
  283. ASCII characters (removes borders and special symbols). 
  284.  
  285.   5.5  Supplemental Tests
  286.  
  287. MAX AGE and PERCENT NEWER:
  288. Rather than use some complex algorithm to determine an average age, or just
  289. use the newest file date, PCBCheck allows you to specify an age and a
  290. percentage of files which must be newer than that age.  For example, if
  291. your percentage is set at 50% and two out of three files in the archive
  292. are newer than the specified date, the upload will pass (66% are newer).
  293. Note that you cannot specify 100%, rather use 99% to tell PCBCheck that
  294. ALL files in the upload must be newer than the specified date.  On the other
  295. hand, use 1% to tell PCBCheck that if ANY file in the archive is newer than
  296. the date the upload is acceptable (that has the same effect as most date
  297. checking systems, checking only the newest date).
  298.  
  299. MINIMUM GIF RESOLUTION:  Enter the minimum resolution (WIDTH, HEIGHT, COLORS)
  300. for GIF images.  Note that each GIF image must pass all three criteria.
  301.  
  302. CHECK FOR KEYWORDS:  PCBCheck can scan the user-entered description for
  303. keywords which you do not want to appear in your filebase.  The keywords
  304. are stored in KEYWORDS.PCB (the format is described in the sample file).
  305. The same editing feature exists as with the TRASHCAN.PCB file described
  306. above.
  307.   
  308.   5.6  Virus Checking
  309.  
  310. You can specify up to 5 virus scanners.  All specified scanners will be
  311. used to test each upload, so you probably only want to specify one for
  312. speed reasons.
  313.  
  314. Enter the name of a virus scanner executable in the leftmost blank (for
  315. example: F-PROT.EXE).  If you specify a recognized executable (F-PROT or
  316. SCAN) SETUP will automatically populate the virus level and parameters
  317. fields with the correct values (note the special exception on McAfee's
  318. SCAN version 1).  SETUP will also notify you if it cannot find the virus
  319. scanner you specify.
  320.  
  321. You should specify virus scanning parameters to prevent the scanner from
  322. displaying any text to the screen, scanning the MBR, or scanning RAM.  It
  323. should be instructed to scan subdirectories and operate in an unattended
  324. mode if such options are available.
  325.  
  326. The virus level is the errorlevel the virus scanner will return if it
  327. finds a virus.  The virus level is tested for equality, not greater than
  328. or less than the specified value.
  329.  
  330.   5.7  Internal Operations
  331.  
  332. SUPPRESS REMOTE OUTPUT:  You can tell PCBCheck not to display anything on
  333. the remote screen.
  334.  
  335. RAMDISK:  Specify the drive letter of your RAM disk here.  Do not specify
  336. a hard drive!  The advantage of using this rather than simply putting
  337. the RAM disk in the data path is that uploads which are too large for the
  338. RAM disk then default back to the data path.  PCBCheck should have the
  339. RAM disk to itself or conflicts may result (though multiple copies of
  340. PCBCheck shouldn't conflict with each other).
  341.  
  342. DATA PATH:  Specify the data path PCBCheck should use for its 'work'
  343. directory.  It should be empty.  If you specify a used or existing directory
  344. you may lose data.  I also recommend a directory very close to the root
  345. directory, as it gives PCBCheck more room to work with.  Note that the
  346. data path should NEVER be on a RAM disk (see the section on RAMDISKs to
  347. learn the proper method of using a RAM disk).
  348.  
  349. SCREEN FILE:  Specifies the background for PCBCheck to use.  Note that
  350. the SCR files are NOT simple ANSI files, though they seem viewable as such!
  351. They are not user editable (with regular ANSI editors, anyway).  They contain,
  352. in addition to other checksums, palette information for PCBCheck.
  353.  
  354. CALLER LOG (errors and messages):  You can tell PCBCheck that any combination
  355. of error reports and messages should be logged in the CALLER log (in
  356. addition to normal logging/reporting by PCBCheck).  Errors are error 
  357. conditions generated by PCBCheck which cause PCBCheck itself to fail.
  358. Messages are messages generated by PCBCheck about uploaded files, including 
  359. reasons for upload failures.
  360.  
  361.   5.8  Mail
  362.  
  363. NOTIFY SYSOP OF (condition):  Specifying yes tells PCBCheck that it should
  364. notify the sysop via PCBoard mail of the named condition.  Note that
  365. specifying 'yes' does not affect any of the other operations of PCBCheck,
  366. for example, if you tell it to notify the sysop of program errors, PCBCheck
  367. will still also note the error in PCBCHECK.LOG and on the screen.
  368.  
  369. NAME OF SYSOP:  If the sysop is user "SYSOP" or if your board has multiple
  370. sysops, this allows you to direct mail intended for the sysop in charge of
  371. the file system to a person other than "SYSOP".
  372.  
  373.   5.9  Privileged Users
  374.  
  375. PCBCheck's privileged users feature allows you to specify a group of users
  376. who are exempt from certain upload restrictions.  You can edit the 
  377. PRIVILEG.PCB file with your text editor, or from within SETUP if it can
  378. find your editor.  Put one name per line as per the examples in there
  379. (feel free to remove the examples, unless you really want us to be
  380. privileged users on your board).
  381.  
  382.   5.10  Archive Modifying Features
  383.  
  384. PCBCheck can remove the comments from archives (of archive types which
  385. support commenting).  If you select 'yes' for replace comments, SETUP will
  386. create a new prompt which requests the file with which to replace the
  387. comment.  You may either enter a filename of a file in the PCBCheck directory
  388. or enter NUL (leaving the field blank will prompt SETUP to insert NUL) to
  389. instruct PCBCheck to clear the comment.
  390.  
  391. REMOVE FILES FROM ARCHIVE:  You can maintain a list of files which you
  392. want PCBCheck to attempt to remove from archives.  The list file must be
  393. DELETE.PCB, which has the same editing features as TRASHCAN.PCB and
  394. KEYWORDS.PCB described above (note the format for DELETE.PCB is described
  395. in the sample file).
  396. Why not recommended?  You're modifying the original archive which I never
  397. recommend because you may be violating security packets.  Also you may
  398. be removing a necessary file which just happened to have the same name as
  399. a file on your 'hit list'.
  400.  
  401. ADD FILE TO ARCHIVE:  You can specify a single file (in the PCBCheck
  402. directory) to add to all incoming archives.
  403. Why not recommended?  In addition to being ANNOYING to have ads in files,
  404. you are again modifying the archive which may destroy security information.
  405. If people didn't use this feature, the remove files feature could also be
  406. eliminated.
  407.  
  408. CONVERT ALL ARCHIVES TO ZIP:  You can instruct PCBCheck to convert all
  409. recognized uploaded archives to the ZIP compression format before posting.
  410. Why not recommended?  This is very STRONGLY not recommended, though it
  411. may sound appealing to many sysops.  It has the same flaws as ADD and DELETE
  412. files named above, but has many more.  First, the conversion is an inexact
  413. science and may result in data loss (there's absolutely NO way to verify
  414. that the conversion was correct other than visual inspection).  Also, even
  415. in a conversion which seemed to work, there may be data loss.  For example,
  416. converting an archive which is a ZIP made under OS/2 to an ARJ loses the
  417. extended attributes (possibly rendering the files useless) though it is
  418. completely undetectable (since it was decompressed under DOS rather than
  419. OS/2).  Similiar situations exist with security envelopes and other platforms.
  420.  
  421. ┌────────────────────────────────────────┐
  422. │ 6.  Conference specific configurations │
  423. └────────────────────────────────────────┘
  424.  
  425. PCBCheck now has the ability to have different configurations for
  426. different conferences.  (I realise you may not want to try the same
  427. checking on archives in your Apple conference is in a regular conference,
  428. or may want to insert a different comment, etc...)  Unfortunately, this
  429. was a very difficult feature to integrate with setup (I couldn't figure
  430. out any way, actually), so the only way to do it is by hand (suggestions
  431. are always welcome for improvements).  SETUP creates PCBCHECK.INI, the
  432. configuration file for the main board.  Renaming it PCBCHECK.001 makes
  433. it a configuration file for conference 1 (.002 for 2, etc....)  So,
  434. if I run a ten conference system, and want a special configuration for
  435. conference 3, I would first run setup, enter the values for conference 3,
  436. then rename PCBCHECK.INI PCBCHECK.003.  I would then run SETUP again,
  437. entering the values I wanted used everywhere else, and SETUP would save
  438. it as PCBCHECK.INI (which is fine).  If there is not a specific configuration
  439. file for a conference, PCBCheck uses PCBCHECK.INI.  PCBCHECK.INI is always
  440. used for the main board.
  441.  
  442. ┌────────────────────────────────────┐
  443. │ 7.  Multinode/Multitasking, etc... │
  444. └────────────────────────────────────┘
  445.  
  446. Well, this is just about the same as running any other program on a
  447. multinode system.  It does open all files in share mode, and does construct
  448. the 'temp directory' name based on the current node, so there should be no
  449. conflict.  I share a PCBTEST.BAT between nodes on my system and it works
  450. fine.  
  451.  
  452. PCBCheck should work just fine under multitasking OS's or shells.  I
  453. developed it and tested it exclusively on OS/2 Warp, so I *know* it works
  454. there.  I've also run it under Windows for the BBS.  I can't think of any
  455. reason it wouldn't work with DesqView then, except of course that it
  456. doesn't give up timeslices (but really, when I'm writing a DOS program I
  457. don't feel that it's my responsibility to give up timeslices, I think the
  458. multitasking OS which multitasks DOS programs should do that!)
  459.  
  460. ┌────────────┐
  461. │ 8.  Errors │
  462. └────────────┘
  463.  
  464. Should PCBCheck itself fail in some way, it will automatically pass the
  465. file and report to the user the error code number.  It will also create a
  466. file named PCBCHECK.LOG in the PCBCHECK directory which will note the error.
  467. If so specified in SETUP, PCBCheck will also send mail to the sysop which
  468. details the error.  This list contains all known PCBCheck error codes which
  469. should occur:
  470.  
  471.    -1    Incorrect parameters
  472.    -2    Cannot access PCBOARD.SYS
  473.    -3    Cannot access PCBOARD.DAT
  474.    -4    Cannot access PCBCHECK.INI file
  475.    -5    Old/Invalid configuration (.INI) file in use
  476.    -6    Cannot access specified .SCR file
  477.    -7    Cannot open description file
  478.    -8    Cannot creat PCBPASS.TXT/PCBFAIL.TXT
  479.    -9    Cannot make work directory
  480.   -10    Cannot remove work directory
  481.   -11    Can't open the file to test
  482.   -12    Can't read from the (already open) file to test
  483.   -13    File to be tested does not exist
  484.   -14    Cannot open the FILE_ID.DIZ from the archive
  485.   -16    Cannot write to description file
  486.   -20    Cannot open/read a PCC file
  487.   -21    Cannot access trashcan file
  488.   -23    Invalid PCC or PCC cannot be read
  489.   -25    Invalid execute external process attempt
  490.   -26    Command is too long
  491.   -28    Cannot access keys file
  492.   -35    Non-zero error code returned by external process
  493.   -36    Old PCC in use
  494.   -37    Cannot access deletion list file
  495.   -38    Cannot access privileged user list file
  496.  
  497. Obviously, most of them deal with file access problems, which could be
  498. related to access priveleges, file sharing or something similiar on your 
  499. system.  The most likely user-addressable problems are: 
  500.  
  501. -2 (cannot open PCBOARD.SYS) 
  502.   Not being able to access PCBOARD.SYS probably means PCBTEST.BAT doesn't run 
  503.   from the PCBoard directory (or changes directories), or else a PCBOARD.SYS 
  504.   doesn't exist in the PCBoard directory.  It could also be a sharing problem
  505.   It could also mean that your PCBTEST.BAT changes directories away from the 
  506.   directory in which the PCBOARD.SYS and PCBOARD.DAT are generated.
  507.  
  508. -3 (cannot open PCBOARD.DAT)
  509.   Not being able to find PCBOARD.DAT could be a sharing problem.  
  510.   It could also mean that your PCBTEST.BAT changes directories away from the
  511.   directory in which the PCBOARD.SYS and PCBOARD.DAT are generated.
  512.  
  513. -25 (can't find external process in path)
  514.   Make sure that all designated acceptable archivers are in the path 
  515.   to fix a -25.
  516.  
  517. -26 (command too long) 
  518.   The proper way to deal with a -26 is, as described earlier, relocate 
  519.   the PCBCheck directory as close to the root as possible to make the 
  520.   commands shorter.
  521.   
  522. -35 (external program error)  
  523.   Note the external process which generated the error and its errorlevel.
  524.   Then, refer to the external program's documentation to determine what
  525.   the error means.  The external process's errorlevel will be noted in
  526.   PCBCHECK.LOG.  More than likely you either ran out of memory (read
  527.   special memory considerations) or out of disk space (you can set PCBoard
  528.   not to accept uploads that reduce disk space below a certain level,
  529.   i.e. 5 meg).
  530.  
  531. N/A appears on virus scanner line
  532.   Your chosen virus scanner is NOT in the path.  To verify this, run SETUP,
  533.   and SETUP will tell you (directly below the line on which you enter the
  534.   name of the virus scanner) if the scanner is not in the path.
  535.  
  536. D:\PCBOARD\PRIVUPLD\FILE.ZIP not found -reported by PCBoard
  537.   Get PCBoard 15.1 or later if you want to use the 'convert archive types'
  538.   feature.  Versions prior to 15.1 did not allow the renaming of files
  539.   during testing.
  540.  
  541. PCBCHECK.LOG, should PCBCheck need to create it, is a wealth of information
  542. for error-solving.  In addition to noting internal program errors (in
  543. addition to the time/date/file on which the error occurred) it also notes
  544. non-zero error levels as returned by archivers or virus scanning programs.
  545. This allows you to catch errors such as SCAN running out of memory, which
  546. otherwise be undetectable!
  547.  
  548. ┌─────────────────┐
  549. │ 9.  Legal Stuff │
  550. └─────────────────┘
  551.  
  552. This program, its look, feel, and its related documentation are copyrighted.
  553. You may not reverse engineer, decompile, or disassemble the program.  You
  554. may not modify or translate the program or documentation without the written
  555. consent of Jim Dahl.
  556.  
  557. This program is provided "as is" without any warranties (or conditions),
  558. express or implied with respect to the program, including the implied
  559. warranties (or conditions) of merchantability and fitness for a
  560. particular purpose.  The entire risk arising out of use or performance of
  561. the program and documentation remains with you.
  562.  
  563. Some jurisdictions do not allow the exclusion of implied warranties, so the
  564. above may not apply to you.
  565.  
  566. In no event will Jim Dahl be liable for any lost profits, lost savings,
  567. incidental or indirect damages or other economic consequential damages,
  568. even if Jim Dahl has been advised of the possibility of such damages.  In
  569. addition, Jim Dahl will be not be liable for any damages claimed by you
  570. based on any third party claim.
  571.  
  572. Some jurisdictions do not allow the exclusion or limitation of
  573. consequential or incidental damages, so the above may not apply to you.
  574.  
  575. ┌─────────────────────────────┐
  576. │ 10.  Memory Considerations  │
  577. └─────────────────────────────┘
  578.  
  579. When you consider what PCBCheck does, you realize that at times there
  580. are up to three programs running at any one time, and each of them demands
  581. it be running in conventional memory.  (PCBoard, PCBCheck, and a virus
  582. scanner or archiver/dearchiver may be running).  PCBoard 15.x (in its latest
  583. incarnation as of this writing) consumes a whopping 248.3k when it shells
  584. to a program, such as PCBCheck, which leaves (assuming a base of 600k) only
  585. 351.7k for the other two programs!  Of course, your base free memory before
  586. running PCBoard may be much lower than 600k.  PCBCheck does it's part by
  587. swapping itself to XMS/EMS/disk, reducing it's kernel in active memory to
  588. a mere 1.7K (it's not getting any smaller).  Unfortunately, some programs,
  589. such as McAfee's virus scanner, require more conventional memory than this
  590. leaves (McAfee's SCAN requires 380k -- note that there is a new version
  591. of McAfee's SCAN out called SCAN 2.0 which decreases the memory
  592. requirement).
  593.  
  594. Since obviously PCBCheck cannot reduce it's memory requirements any
  595. further, it is up to you to setup PCBoard so it swaps more of itself out
  596. before shelling to PCBTEST.BAT to free up more memory.  Another option is
  597. to use low-memory programs.  I personally recommend F-PROT as a virus
  598. scanner (it is free, and has lower memory requirements).
  599.  
  600. Note- if a program such as SCAN runs out of memory, it will not crash
  601. PCBCheck, rather it will cause PCBCheck to always report files as 'clean',
  602. thereby possibly allowing viruses to slip through!  If an archiver runs
  603. out of memory, it will fail the upload.  All errorlevels, for virus scanning
  604. and archiving/dearchiving, are noted in the PCBCheck log file, so you should
  605. be able to catch "out of memory" errors by referring to the log regularly
  606. (or if there are problems).
  607.  
  608. If you get "Out of Memory" return codes from shelled applications,
  609. In System Setup, under Configuration Options, then Configuration Switches,
  610. set "swap during SHELL" to yes to free up more memory (at the cost of
  611. slightly slower swapping).
  612.  
  613. The bottom line to memory considerations is get PCBoard for OS/2.  Each
  614. shelled program gets its own VDM with 640k of RAM.
  615.  
  616. ┌────────────────────────────┐
  617. │ 11. Registration/Shareware │
  618. └────────────────────────────┘
  619.  
  620. As I'm sure most Sysops know, shareware is not a type of program but a
  621. distribution method.  If you continue to use my product you are obligated,
  622. morally and legally, to pay me for it.  Therefore, I don't disable any cool 
  623. features, or even make promises of neat new features or extra utility or 
  624. maintenance programs if you register.  I want to give you the full program 
  625. so you know what you're really dealing with, and if you don't think it's 
  626. worth paying for (which is fine with me) I expect you to quit using it.  Note
  627. that the amount of work I put into PCBCheck is directly proportional to
  628. registrations received.  When I receive registrations, I can justify putting
  629. large amounts of time into new, advanced features.  Think of your
  630. registration as funding future releases.
  631.   
  632. Until you register, PCBCheck will pause after each time you use it, to
  633. remind you that it is unregistered.  For your evaluation convenience the
  634. pause will only be 5 seconds when you are using PCBCheck locally, but
  635. will be 10 seconds when your users upload.
  636.  
  637. One registration does, of course, entitle you to use all future releases.
  638.   
  639. The main advantage of registering PCBCheck (in addition to encouraging
  640. me to keep improving it) is that you will eliminate the delay and the
  641. title bar will say "PCBCheck - Your BBS Name" instead of "PCBCheck -
  642. Unregistered".
  643.  
  644. Registration is currently set at $20. 
  645.   
  646. You can register either by filling out the REGISTER.DOC and mailing it to
  647. the given address or you can register online at the Eagle BBS.
  648.  
  649. ┌─────────────────────────────────────────────────────┐
  650. │ 12.  Future plans / rumors / possibilities / vapour │
  651. └─────────────────────────────────────────────────────┘ 
  652.  
  653. PCBCheck will soon gain duplicate checking.  It will not be part 
  654. of the base product - rather an addon which requires separate registration.
  655.  
  656. I'm still playing with an OS/2 version, though the DOS version is tweaked
  657. to run under OS/2 such that the OS/2 version actually runs a little slower,
  658. so I'm working on some true OS/2 features - threading, etc...
  659.  
  660. ┌────────────────────────────────────────────────────────┐
  661. │ 13.  Where to complain / how to compliment the author  │
  662. └────────────────────────────────────────────────────────┘ 
  663.   
  664. I can be reached at:
  665.  
  666.     Eagle BBS (218) 773-6011 (home of PCBCheck)
  667.                     
  668.                     Legal Eagle is where I will continue to alpha test
  669.                     PCBCheck, and will continue to provide support.  Also,
  670.                     I can field mail addressed to 'SYSOP' on this board.
  671.                     (note join conference 21)
  672.  
  673.     Internet        dahl@Agassiz.CAS.UND.NoDak.edu
  674.     FIDOnet         Jim Dahl@1:2808/17 (pretty slow way to reach me)  
  675.  
  676.   And of course, write to me at:
  677.  
  678.     Jim Dahl
  679.     RE: PCBCheck              
  680.     2236 Springbrook Ct.
  681.     Grand Forks, ND 58201
  682.  
  683. -----------------------------------------------------------------------------
  684.  
  685. New versions can always be obtained from Salt Air or from the above BBS.
  686. They are FREQable as PCBCHECK from 1:2808/17 (not as reliable as downloading)
  687.  
  688. You can also get the latest version of PCBCheck plus PCBCheck information
  689. at http://www.cs.und.nodak.edu/~dahl/pcbcheck
  690.  
  691. Registrations (currently $20) taken at:
  692.  
  693.         Jim Dahl                  
  694.         RE: PCBCheck              
  695.         2236 Springbrook Ct.      
  696.         Grand Forks, ND 58201     
  697.  
  698. Or to register online using your credit card:
  699.  
  700.         Call (218) 773-6011
  701.         Once logged on type ORDER and follow the prompts
  702.  
  703. If you register online you immediately receive key information online.  If
  704. you register via US mail a key will have to be sent to you electronically
  705. or via US Mail (slow!)
  706.